package com.mygdx.game; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.graphics.Pixmap.Format; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Skin; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.TextButton.TextButtonStyle; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.InetAddress; import java.net.URL; public class StartScreen implements Screen { Skin skin; Stage stage; SpriteBatch batch; Game g; Texture background; public StartScreen(Game g){ create(); this.g=g; } public void create(){ try { registerRoom(); } catch (Exception e){ e.printStackTrace(); } batch = new SpriteBatch(); background = new Texture("bg_album_art.jpg"); stage = new Stage(); Gdx.input.setInputProcessor(stage); // A skin can be loaded via JSON or defined programmatically, either is fine. Using a skin is optional but strongly // recommended solely for the convenience of getting a texture, region, etc as a drawable, tinted drawable, etc. skin = new Skin(); // Generate a 1x1 white texture and store it in the skin named "white". Pixmap pixmap = new Pixmap(100, 100, Format.RGBA8888); pixmap.setColor(Color.BLUE); pixmap.fill(); skin.add("white", new Texture(pixmap)); // Store the default libgdx font under the name "default". BitmapFont bfont=new BitmapFont(); bfont.getData().setScale(1); skin.add("default",bfont); // Configure a TextButtonStyle and name it "default". Skin resources are stored by type, so this doesn't overwrite the font. TextButtonStyle textButtonStyle = new TextButtonStyle(); textButtonStyle.up = skin.newDrawable("white", Color.DARK_GRAY); textButtonStyle.down = skin.newDrawable("white", Color.DARK_GRAY); textButtonStyle.checked = skin.newDrawable("white", Color.BLUE); textButtonStyle.over = skin.newDrawable("white", Color.LIGHT_GRAY); textButtonStyle.font = skin.getFont("default"); skin.add("default", textButtonStyle); // Create a button with the "default" TextButtonStyle. A 3rd parameter can be used to specify a name other than "default". final TextButton textButton=new TextButton("PLAY",textButtonStyle); textButton.setSize(200, 80); textButton.setPosition(583, 344); stage.addActor(textButton); stage.addActor(textButton); stage.addActor(textButton); // Add a listener to the button. ChangeListener is fired when the button's checked state changes, eg when clicked, // Button#setChecked() is called, via a key press, etc. If the event.cancel() is called, the checked state will be reverted. // ClickListener could have been used, but would only fire when clicked. Also, canceling a ClickListener event won't // revert the checked state. textButton.addListener(new ChangeListener() { public void changed (ChangeEvent event, Actor actor) { System.out.println("Clicked! Is checked: " + textButton.isChecked()); textButton.setText("Starting new game"); g.setScreen( new RoomScreen(g)); } }); } public void render (float delta) { Gdx.gl.glClearColor(0.2f, 0.2f, 0.2f, 1); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); batch.draw(background, 0, 0); batch.end(); stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f)); stage.draw(); stage.setDebugAll(true); } @Override public void resize (int width, int height) { //stage.setViewport(width, height, false); } @Override public void dispose () { stage.dispose(); skin.dispose(); } @Override public void show() { // TODO Auto-generated method stub } @Override public void hide() { // TODO Auto-generated method stub } @Override public void pause() { // TODO Auto-generated method stub } @Override public void resume() { // TODO Auto-generated method stub } private void registerRoom() throws Exception { String url = "http://spacecharge.co.nf/php/room_add.php"; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); //add reuqest header con.setRequestMethod("POST"); //con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); InetAddress IP = InetAddress.getLocalHost(); //System.out.print(IP.getHostAddress()); String urlParameters = "ipAdd=" + IP.getHostAddress(); // Send post request con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(urlParameters); wr.flush(); wr.close(); int responseCode = con.getResponseCode(); System.out.println("\nSending 'POST' request to URL : " + url); System.out.println("Post parameters : " + urlParameters); System.out.println("Response Code : " + responseCode); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuilder response = new StringBuilder(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); //print result System.out.println("Room Code: " + response.toString()); MyGdxGame.RoomID = response.toString(); } }